package com.bestcem.xm.user.dao.mapper;

import com.bestcem.xm.user.entity.mysql.UserBookingTrack;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 用户埋点信息表
 *
 * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
 * @version v1.0
 * @date 2022/03/17 15:52
 */
@Mapper
public interface UserBookingTrackMapper {

    /**
     * 新增用户埋点信息
     *
     * @param track 埋点信息
     * @return int 插入成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:13
     */
    int insert(UserBookingTrack track);

    /**
     * 有选择的新增用户埋点信息
     *
     * @param userBookingTrack 埋点信息
     * @return int 插入成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:14
     */
    int insertSelective(UserBookingTrack userBookingTrack);

    /**
     * 根据主键查询埋点信息
     *
     * @param id 主键id
     * @return com.bestcem.xm.user.entity.mysql.UserBookingTrack
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:14
     */
    UserBookingTrack selectByPrimaryKey(String id);

    /**
     * 根据主键有选择的更新用户埋点信息
     *
     * @param track 埋点信息
     * @return int 更新成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:15
     */
    int updateByPrimaryKeySelective(UserBookingTrack track);

    /**
     * 根据公司code有选择的更新用户埋点信息
     *
     * @param track 埋点信息
     * @return int 更新成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:15
     */
    int updateSelectiveByOrgCode(UserBookingTrack track);

    /**
     * 根据主键id更新用户埋点信息
     *
     * @param track 埋点信息
     * @return int 更新成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:16
     */
    int updateByPrimaryKey(UserBookingTrack track);

    /**
     * 根据主键id删除用户埋点信息
     *
     * @param id 主键id
     * @return int 删除成功的条数
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:16
     */
    int deleteByPrimaryKey(String id);

    /**
     * 根据埋点信息相关条件查询用户埋点信息列表
     * @param userBookingTrack
     * @return java.util.List<com.bestcem.xm.user.entity.mysql.UserBookingTrack>
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/03/17 16:41
     */
    List<UserBookingTrack> selectBySelective(UserBookingTrack userBookingTrack);

    /**
     * 根据创建时间的区间来查询用户埋点信息列表
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return java.util.List<com.bestcem.xm.user.entity.pojo.UserBookingTrackDO>
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2022/06/01 14:51
     */
    List<UserBookingTrack> selectByCreateTimeInterval(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

}